/**
 * Created with IntelliJ IDEA.
 * Description:
 * User:
 * Date: 2025-10-03
 * Time: 16:15
 */
class MyThread extends Thread{
    @Override
    public void run() {
        while (true) {
            System.out.println("hello thread");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}

public class demo1 {
    public static void main1(String[] args) throws InterruptedException{
        Thread t = new MyThread();
        t.start();

        while(true){
            System.out.println("hello main");
            Thread.sleep(1000);
        }
    }

    public static void main2(String[] args) throws InterruptedException{
        Runnable runnable = new Runnable() {
            @Override
            public void run() {
                while(true){
                    System.out.println("hello thread");
                    try{
                        Thread.sleep(1000);
                    }catch(InterruptedException e){
                        e.printStackTrace();
                    }
                }
            }
        };

        Thread t = new Thread(runnable);
        t.start();
        while(true){
            System.out.println("hello main");
            Thread.sleep(1000);
        }
    }


    public static void main3(String[] args) throws InterruptedException {
        Thread t = new Thread(){
            @Override
            public void run(){
                while(true){
                    System.out.println("hello thread");
                    try{
                        Thread.sleep(1000);
                    }catch (InterruptedException e){
                        e.printStackTrace();
                    }
                }
            }
        };

        t. start();

        while(true){
            System.out.println("hello main");
            Thread.sleep(1000);
        }
    }

    public static void main(String[] args) throws InterruptedException {
        Thread t = new Thread(() -> {
            System.out.println("hello thread");
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        });

        t.start();

        while(true){
            System.out.println("hello main");
            Thread.sleep(1000);
        }
    }
}
